package com.wryyyyy.controller;

import com.wryyyyy.dto.Result;
import com.wryyyyy.service.IFoulFactoryService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Arrays;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author wryyyyy
 * @since 2024-05-14
 */
@RestController
@RequestMapping("/foulFactory")
public class FoulFactoryController {
    @Resource
    private IFoulFactoryService foulFactoryService;

    /**
     * 泰安市所有水厂
     * @param countryIds 泰安市下的 所有区
     * @return 水厂集合
     */
    @PostMapping("/city/list")
    public Result listFactoryByCity(@RequestBody String[] countryIds) {
        return foulFactoryService.listFactoryByCity(Arrays.asList(countryIds));
    }

    /**
     * 泰山区所有水厂
     * @param countryId 泰安市下的 某个区
     * @return 水厂集合
     */
    @GetMapping("/country/list")
    public Result listFactoryByCity(@RequestParam String countryId) {
        return foulFactoryService.listFactoryByCountry(countryId);
    }

    /**
     * 查询水厂详情
     * @param id 水厂id
     * @return 水厂详情
     */
    @GetMapping("/{id}")
    public Result queryFactoryById(@PathVariable("id") String id) {
        return Result.ok(foulFactoryService.getById(id));
    }

    /**
     * 达标率
     * @param factoryId 水厂id
     * @return 达标率
     */
    @GetMapping("/passing")
    public Result passing(@RequestParam String factoryId) {
        return foulFactoryService.getPassingRate(factoryId);
    }

    /**
     * 污水 24h内 每2h水量
     * @param factoryId 水厂id
     * @return 水量
     */
    @GetMapping("/amount")
    public Result foulAmount(@RequestParam String factoryId) {
        return foulFactoryService.getAmount(factoryId);
    }

    /**
     * 污水 24h内 每2h加药量
     * @param factoryId 水厂id
     * @return 加药量
     */
    @GetMapping("/dosage")
    public Result foulDosage(@RequestParam String factoryId) {
        return foulFactoryService.getDosage(factoryId);
    }

    /**
     * 污水 水质分析
     * @param factoryId 水厂id
     * @return 水质
     */
    @GetMapping("/content")
    public Result foulContent(@RequestParam String factoryId) {
        return foulFactoryService.getContent(factoryId);
    }
}